package design;

/**
 * @author: hero生仔
 *
 * 主要解决的是直接继承下因功能的不断横向扩展导致子类膨胀的问题，而是用装饰器模式后
 * 就会比直接继承显得更加灵活同时这样也就不再需要考虑子类的维护
 *
 * 装饰类两个重点的地方
 * 1. 继承了处理接口
 * 2. 提供了构造函数
 * 3. 覆盖了方法 preHandler
 */
public abstract class SsoDecorator implements HandlerInterceptor{
    private HandlerInterceptor handlerInterceptor;

    public SsoDecorator() {}
    public SsoDecorator(HandlerInterceptor handlerInterceptor) {
        this.handlerInterceptor = handlerInterceptor;
    }

    @Override
    public boolean preHandle(String request, String response, Object handler) {
        return handlerInterceptor.preHandle(request, response, handler);
    }
}
